package com.ymttest.database.sharding.db.sharding.model;

import java.math.BigDecimal;
import java.util.Date;

public class PaymentPo {
    /**
     * payment_id BIGINT(19) 必填<br>
     * 主键
     */
    private Long paymentId;

    /**
     * user_id BIGINT(19) 必填<br>
     * 用户Id
     */
    private Long userId;

    /**
     * pay_type INTEGER(10) 必填<br>
     * 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    private Integer payType;

    /**
     * pay_status INTEGER(10) 必填<br>
     * 支付状态
     */
    private Integer payStatus;
    
    /**
     * trade_type INTEGER(10) 必填<br>
     * 交易类型(1-全款支付 2-预售订单-定金支付)
     */
    private Integer tradeType;

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 应付金额
     */
    private BigDecimal payableAmount;

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 第三方支付金额
     */
    private BigDecimal thirdpartyAmount;

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 余额支付金额
     */
    private BigDecimal accountAmount;

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 实际扣款金额
     */
    private BigDecimal realPaidAmount;

    /**
     * thirdparty_discount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 第三方优惠金额
     */
    private BigDecimal thirdpartyDiscount;
    
    /**
     * pay_deduct_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * app内平台立减优惠
     */
    private BigDecimal payDeductAmount;

    /**
     * gateway_payment_id VARCHAR(50)<br>
     * 网关支付Id
     */
    private String gatewayPaymentId;

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 第三方支付Id
     */
    private String thirdpartyPaymentId;

    /**
     * gateway_callback VARCHAR(255)<br>
     * 
     */
    private String gatewayCallback;

    /**
     * pay_channel VARCHAR(50)<br>
     * 支付渠道
     */
    private String payChannel;

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 执行次数
     */
    private Integer retryTimes;

    /**
     * memo VARCHAR(100)<br>
     * 备注
     */
    private String memo;

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 网关回调时间
     */
    private Date gatewayCallbackTime;

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 新增时间
     */
    private Date addTime;

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 更新时间
     */
    private Date updateTime;
    
    /**
     * settle_currency
     * 结算货币
     */
    private String settleCurrency;
    
    /**
     * settle_rate
     * 结算汇率
     */
    private String settleRate;
    
    /**
     * foreign_amount
     * 外币金额
     */
    private BigDecimal foreignAmount;
    
    /**
     * pay_currency
     * 支付币种
     */
    private String payCurrency;
    
    /**
     * exchange_rate
     * 支付汇率
     */
    private String exchangeRate;
    
    /**
     * shenqi_payment_rmb_amount
     * 支付人民币金额
     */
    private BigDecimal shenqiPaymentRmbAmount;
    
    /**
     * real_foreign_amount
     * 实付外币金额
     */
    private BigDecimal realForeignAmount;
    
    /**
     * app_name VARCHAR(50)<br>
     * 应用名称
     */
    private String appName;
    
    /**
     * gateway_pay_type VARCHAR(50)<br>
     * 网关支付类型
     */
    private String gatewayPayType;
    
    /**
     * paid_merchant_num VARCHAR(200)<br>
     * 支付商户号
     */
    private String paidMerchantNum;
    
    /**
     * 
     */
    private BigDecimal realSubmitRmbAmount;
    
    /**
     * 实际提交给支付网关的外币金额，当订单计价为人民币，而必须以外币提交支付网关时有值
     */
    private BigDecimal realSubmitForeignAmount;
    
    /**
     * 人民币vs支付实际提交外币币种汇率。实际提交给支付网关的外币金额，当订单计价为人民币，而必须以外币提交支付网关时有值
     */
    private BigDecimal rmbVsRealSubmitForeignRate;
    
    /**
     * 代付人id
     */
    private Long helpPayUserId;
    
    /**
     * 代付人身份证信息id
     */
    private Long helpPayIdcardId;

    /**
     * payment_id BIGINT(19) 必填<br>
     * 获得 主键
     */
    public Long getPaymentId() {
        return paymentId;
    }

    /**
     * payment_id BIGINT(19) 必填<br>
     * 设置 主键
     */
    public void setPaymentId(Long paymentId) {
        this.paymentId = paymentId;
    }

    /**
     * user_id BIGINT(19) 必填<br>
     * 获得 用户Id
     */
    public Long getUserId() {
        return userId;
    }

    /**
     * user_id BIGINT(19) 必填<br>
     * 设置 用户Id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }

    /**
     * pay_type INTEGER(10) 必填<br>
     * 获得 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    public Integer getPayType() {
        return payType;
    }

    /**
     * pay_type INTEGER(10) 必填<br>
     * 设置 支付方式(1-全余额 2-全第三方 3-组合支付)
     */
    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    /**
     * pay_status INTEGER(10) 必填<br>
     * 获得 支付状态
     */
    public Integer getPayStatus() {
        return payStatus;
    }

    /**
     * pay_status INTEGER(10) 必填<br>
     * 设置 支付状态
     */
    public void setPayStatus(Integer payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 获得 应付金额
     */
    public BigDecimal getPayableAmount() {
        return payableAmount;
    }

    /**
     * payable_amount DECIMAL(18,2) 必填<br>
     * 设置 应付金额
     */
    public void setPayableAmount(BigDecimal payableAmount) {
        this.payableAmount = payableAmount;
    }

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 第三方支付金额
     */
    public BigDecimal getThirdpartyAmount() {
        return thirdpartyAmount;
    }

    /**
     * thirdparty_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 第三方支付金额
     */
    public void setThirdpartyAmount(BigDecimal thirdpartyAmount) {
        this.thirdpartyAmount = thirdpartyAmount;
    }

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 余额支付金额
     */
    public BigDecimal getAccountAmount() {
        return accountAmount;
    }

    /**
     * account_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 余额支付金额
     */
    public void setAccountAmount(BigDecimal accountAmount) {
        this.accountAmount = accountAmount;
    }

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 实际扣款金额
     */
    public BigDecimal getRealPaidAmount() {
        return realPaidAmount;
    }

    /**
     * real_paid_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 实际扣款金额
     */
    public void setRealPaidAmount(BigDecimal realPaidAmount) {
        this.realPaidAmount = realPaidAmount;
    }

    /**
     * thirdparty_discount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 第三方优惠金额
     */
    public BigDecimal getThirdpartyDiscount() {
        return thirdpartyDiscount;
    }

    /**
     * thirdparty_discount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 第三方优惠金额
     */
    public void setThirdpartyDiscount(BigDecimal thirdpartyDiscount) {
        this.thirdpartyDiscount = thirdpartyDiscount;
    }

    /**
     * pay_deduct_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 获得 app内平台立减优惠金额
     */
    public BigDecimal getPayDeductAmount() {
		return payDeductAmount;
	}

    /**
     * pay_deduct_amount DECIMAL(18,2) 默认值[0.00] 必填<br>
     * 设置 app内平台立减优惠金额
     */
	public void setPayDeductAmount(BigDecimal payDeductAmount) {
		this.payDeductAmount = payDeductAmount;
	}

	/**
     * gateway_payment_id VARCHAR(50)<br>
     * 获得 网关支付Id
     */
    public String getGatewayPaymentId() {
        return gatewayPaymentId;
    }

    /**
     * gateway_payment_id VARCHAR(50)<br>
     * 设置 网关支付Id
     */
    public void setGatewayPaymentId(String gatewayPaymentId) {
        this.gatewayPaymentId = gatewayPaymentId == null ? null : gatewayPaymentId.trim();
    }

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 获得 第三方支付Id
     */
    public String getThirdpartyPaymentId() {
        return thirdpartyPaymentId;
    }

    /**
     * thirdparty_payment_id VARCHAR(50)<br>
     * 设置 第三方支付Id
     */
    public void setThirdpartyPaymentId(String thirdpartyPaymentId) {
        this.thirdpartyPaymentId = thirdpartyPaymentId == null ? null : thirdpartyPaymentId.trim();
    }

    /**
     * gateway_callback VARCHAR(255)<br>
     * 获得 
     */
    public String getGatewayCallback() {
        return gatewayCallback;
    }

    /**
     * gateway_callback VARCHAR(255)<br>
     * 设置 
     */
    public void setGatewayCallback(String gatewayCallback) {
        this.gatewayCallback = gatewayCallback == null ? null : gatewayCallback.trim();
    }

    /**
     * pay_channel VARCHAR(50)<br>
     * 获得 支付渠道
     */
    public String getPayChannel() {
        return payChannel;
    }

    /**
     * pay_channel VARCHAR(50)<br>
     * 设置 支付渠道
     */
    public void setPayChannel(String payChannel) {
        this.payChannel = payChannel == null ? null : payChannel.trim();
    }

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 获得 执行次数
     */
    public Integer getRetryTimes() {
        return retryTimes;
    }

    /**
     * retry_times INTEGER(10) 默认值[0] 必填<br>
     * 设置 执行次数
     */
    public void setRetryTimes(Integer retryTimes) {
        this.retryTimes = retryTimes;
    }

    /**
     * memo VARCHAR(100)<br>
     * 获得 备注
     */
    public String getMemo() {
        return memo;
    }

    /**
     * memo VARCHAR(100)<br>
     * 设置 备注
     */
    public void setMemo(String memo) {
        this.memo = memo == null ? null : memo.trim();
    }

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 获得 网关回调时间
     */
    public Date getGatewayCallbackTime() {
        return gatewayCallbackTime;
    }

    /**
     * gateway_callback_time TIMESTAMP(19)<br>
     * 设置 网关回调时间
     */
    public void setGatewayCallbackTime(Date gatewayCallbackTime) {
        this.gatewayCallbackTime = gatewayCallbackTime;
    }

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 获得 新增时间
     */
    public Date getAddTime() {
        return addTime;
    }

    /**
     * add_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 设置 新增时间
     */
    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 获得 更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * update_time TIMESTAMP(19) 默认值[CURRENT_TIMESTAMP] 必填<br>
     * 设置 更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getTradeType() {
		return tradeType;
	}

	public void setTradeType(Integer tradeType) {
		this.tradeType = tradeType;
	}

	public String getSettleCurrency() {
		return settleCurrency;
	}

	public void setSettleCurrency(String settleCurrency) {
		this.settleCurrency = settleCurrency;
	}

	public String getSettleRate() {
		return settleRate;
	}

	public void setSettleRate(String settleRate) {
		this.settleRate = settleRate;
	}

	public BigDecimal getForeignAmount() {
		return foreignAmount;
	}

	public void setForeignAmount(BigDecimal foreignAmount) {
		this.foreignAmount = foreignAmount;
	}

	public BigDecimal getRealForeignAmount() {
		return realForeignAmount;
	}

	public void setRealForeignAmount(BigDecimal realForeignAmount) {
		this.realForeignAmount = realForeignAmount;
	}

	public String getPayCurrency() {
		return payCurrency;
	}

	public void setPayCurrency(String payCurrency) {
		this.payCurrency = payCurrency;
	}

	public String getExchangeRate() {
		return exchangeRate;
	}

	public void setExchangeRate(String exchangeRate) {
		this.exchangeRate = exchangeRate;
	}

	public BigDecimal getShenqiPaymentRmbAmount() {
		return shenqiPaymentRmbAmount;
	}

	public void setShenqiPaymentRmbAmount(BigDecimal shenqiPaymentRmbAmount) {
		this.shenqiPaymentRmbAmount = shenqiPaymentRmbAmount;
	}

	public String getAppName() {
		return appName;
	}

	public void setAppName(String appName) {
		this.appName = appName;
	}

	public String getGatewayPayType() {
		return gatewayPayType;
	}

	public void setGatewayPayType(String gatewayPayType) {
		this.gatewayPayType = gatewayPayType;
	}

	public String getPaidMerchantNum() {
		return paidMerchantNum;
	}

	public void setPaidMerchantNum(String paidMerchantNum) {
		this.paidMerchantNum = paidMerchantNum;
	}

	public BigDecimal getRealSubmitRmbAmount() {
		return realSubmitRmbAmount;
	}

	public void setRealSubmitRmbAmount(BigDecimal realSubmitRmbAmount) {
		this.realSubmitRmbAmount = realSubmitRmbAmount;
	}

	public BigDecimal getRealSubmitForeignAmount() {
		return realSubmitForeignAmount;
	}

	public void setRealSubmitForeignAmount(BigDecimal realSubmitForeignAmount) {
		this.realSubmitForeignAmount = realSubmitForeignAmount;
	}

	public BigDecimal getRmbVsRealSubmitForeignRate() {
		return rmbVsRealSubmitForeignRate;
	}

	public void setRmbVsRealSubmitForeignRate(BigDecimal rmbVsRealSubmitForeignRate) {
		this.rmbVsRealSubmitForeignRate = rmbVsRealSubmitForeignRate;
	}

	public Long getHelpPayUserId() {
		return helpPayUserId;
	}

	public void setHelpPayUserId(Long helpPayUserId) {
		this.helpPayUserId = helpPayUserId;
	}

	public Long getHelpPayIdcardId() {
		return helpPayIdcardId;
	}

	public void setHelpPayIdcardId(Long helpPayIdcardId) {
		this.helpPayIdcardId = helpPayIdcardId;
	}

	@Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", paymentId=").append(paymentId);
        sb.append(", userId=").append(userId);
        sb.append(", payType=").append(payType);
        sb.append(", payStatus=").append(payStatus);
        sb.append(", tradeType=").append(this.tradeType);
        sb.append(", payableAmount=").append(payableAmount);
        sb.append(", thirdpartyAmount=").append(thirdpartyAmount);
        sb.append(", payDeductAmount=").append(this.payDeductAmount);
        sb.append(", accountAmount=").append(accountAmount);
        sb.append(", realPaidAmount=").append(realPaidAmount);
        sb.append(", thirdpartyDiscount=").append(thirdpartyDiscount);
        sb.append(", gatewayPaymentId=").append(gatewayPaymentId);
        sb.append(", thirdpartyPaymentId=").append(thirdpartyPaymentId);
        sb.append(", gatewayCallback=").append(gatewayCallback);
        sb.append(", payChannel=").append(payChannel);
        sb.append(", retryTimes=").append(retryTimes);
        sb.append(", memo=").append(memo);
        sb.append(", gatewayCallbackTime=").append(gatewayCallbackTime);
        sb.append(", addTime=").append(addTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", settle_currency=").append(this.settleCurrency);
        sb.append(", settle_rate=").append(this.settleRate);
        sb.append(", foreignAmount=").append(this.foreignAmount);
        sb.append(", realForeignAmount=").append(this.realForeignAmount);
        sb.append(", payCurrency=").append(this.payCurrency);
        sb.append(", shenqiPaymentRmbAmount=").append(this.shenqiPaymentRmbAmount);
        sb.append(", exchangeRate=").append(this.exchangeRate);
        sb.append(", appName=").append(this.appName);
        sb.append(", gatewayPayType=").append(this.gatewayPayType);
        sb.append(", paidMerchantNum=").append(this.paidMerchantNum);
        sb.append(", realSubmitRmbAmount=").append(this.realSubmitRmbAmount);
        sb.append(", realSubmitForeignAmount=").append(this.realSubmitForeignAmount);
        sb.append(", rmbVsRealSubmitForeignRate=").append(this.rmbVsRealSubmitForeignRate);
        
        sb.append(", helpPayUserId=").append(this.helpPayUserId);
        sb.append(", helpPayIdcardId=").append(this.helpPayIdcardId);
        sb.append("]");
        return sb.toString();
    }
}